<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Chapter 27. Zend_Mail</title>
<link rel="stylesheet" href="dbstyle.css" type="text/css">
<meta name="generator" content="DocBook XSL Stylesheets V1.72.0">
<link rel="start" href="index.html" title="Programmer's Reference Guide">
<link rel="up" href="index.html" title="Programmer's Reference Guide">
<link rel="prev" href="zend.log.filters.html" title="26.4. Filters">
<link rel="next" href="zend.mail.sending.html" title="27.2. Sending via SMTP">
<link rel="chapter" href="introduction.html" title="Chapter 1. Introduction to Zend Framework">
<link rel="chapter" href="zend.acl.html" title="Chapter 2. Zend_Acl">
<link rel="chapter" href="zend.auth.html" title="Chapter 3. Zend_Auth">
<link rel="chapter" href="zend.cache.html" title="Chapter 4. Zend_Cache">
<link rel="chapter" href="zend.config.html" title="Chapter 5. Zend_Config">
<link rel="chapter" href="zend.console.getopt.html" title="Chapter 6. Zend_Console_Getopt">
<link rel="chapter" href="zend.controller.html" title="Chapter 7. Zend_Controller">
<link rel="chapter" href="zend.currency.html" title="Chapter 8. Zend_Currency">
<link rel="chapter" href="zend.date.html" title="Chapter 9. Zend_Date">
<link rel="chapter" href="zend.db.html" title="Chapter 10. Zend_Db">
<link rel="chapter" href="zend.debug.html" title="Chapter 11. Zend_Debug">
<link rel="chapter" href="zend.dojo.html" title="Chapter 12. Zend_Dojo">
<link rel="chapter" href="zend.dom.html" title="Chapter 13. Zend_Dom">
<link rel="chapter" href="zend.exception.html" title="Chapter 14. Zend_Exception">
<link rel="chapter" href="zend.feed.html" title="Chapter 15. Zend_Feed">
<link rel="chapter" href="zend.filter.html" title="Chapter 16. Zend_Filter">
<link rel="chapter" href="zend.form.html" title="Chapter 17. Zend_Form">
<link rel="chapter" href="zend.gdata.html" title="Chapter 18. Zend_Gdata">
<link rel="chapter" href="zend.http.html" title="Chapter 19. Zend_Http">
<link rel="chapter" href="zend.infocard.html" title="Chapter 20. Zend_InfoCard">
<link rel="chapter" href="zend.json.html" title="Chapter 21. Zend_Json">
<link rel="chapter" href="zend.layout.html" title="Chapter 22. Zend_Layout">
<link rel="chapter" href="zend.ldap.html" title="Chapter 23. Zend_Ldap">
<link rel="chapter" href="zend.loader.html" title="Chapter 24. Zend_Loader">
<link rel="chapter" href="zend.locale.html" title="Chapter 25. Zend_Locale">
<link rel="chapter" href="zend.log.html" title="Chapter 26. Zend_Log">
<link rel="chapter" href="zend.mail.html" title="Chapter 27. Zend_Mail">
<link rel="chapter" href="zend.measure.html" title="Chapter 28. Zend_Measure">
<link rel="chapter" href="zend.memory.html" title="Chapter 29. Zend_Memory">
<link rel="chapter" href="zend.mime.html" title="Chapter 30. Zend_Mime">
<link rel="chapter" href="zend.openid.html" title="Chapter 31. Zend_OpenId">
<link rel="chapter" href="zend.paginator.html" title="Chapter 32. Zend_Paginator">
<link rel="chapter" href="zend.pdf.html" title="Chapter 33. Zend_Pdf">
<link rel="chapter" href="zend.registry.html" title="Chapter 34. Zend_Registry">
<link rel="chapter" href="zend.rest.html" title="Chapter 35. Zend_Rest">
<link rel="chapter" href="zend.search.lucene.html" title="Chapter 36. Zend_Search_Lucene">
<link rel="chapter" href="zend.server.html" title="Chapter 37. Zend_Server">
<link rel="chapter" href="zend.service.html" title="Chapter 38. Zend_Service">
<link rel="chapter" href="zend.session.html" title="Chapter 39. Zend_Session">
<link rel="chapter" href="zend.soap.html" title="Chapter 40. Zend_Soap">
<link rel="chapter" href="zend.test.html" title="Chapter 41. Zend_Test">
<link rel="chapter" href="zend.text.html" title="Chapter 42. Zend_Text">
<link rel="chapter" href="zend.timesync.html" title="Chapter 43. Zend_TimeSync">
<link rel="chapter" href="zend.translate.html" title="Chapter 44. Zend_Translate">
<link rel="chapter" href="zend.uri.html" title="Chapter 45. Zend_Uri">
<link rel="chapter" href="zend.validate.html" title="Chapter 46. Zend_Validate">
<link rel="chapter" href="zend.version.html" title="Chapter 47. Zend_Version">
<link rel="chapter" href="zend.view.html" title="Chapter 48. Zend_View">
<link rel="chapter" href="zend.xmlrpc.html" title="Chapter 49. Zend_XmlRpc">
<link rel="appendix" href="requirements.html" title="Appendix A. Zend Framework Requirements">
<link rel="appendix" href="coding-standard.html" title="Appendix B. Zend Framework Coding Standard for PHP">
<link rel="appendix" href="copyrights.html" title="Appendix C. Copyright Information">
<link rel="index" href="the.index.html" title="Index">
<link rel="section" href="zend.mail.html#zend.mail.introduction" title="27.1. Introduction">
<link rel="section" href="zend.mail.sending.html" title="27.2. Sending via SMTP">
<link rel="section" href="zend.mail.multiple-emails.html" title="27.3. Sending Multiple Mails per SMTP Connection">
<link rel="section" href="zend.mail.different-transports.html" title="27.4. Using Different Transports">
<link rel="section" href="zend.mail.html-mails.html" title="27.5. HTML E-Mail">
<link rel="section" href="zend.mail.attachments.html" title="27.6. Attachments">
<link rel="section" href="zend.mail.adding-recipients.html" title="27.7. Adding Recipients">
<link rel="section" href="zend.mail.boundary.html" title="27.8. Controlling the MIME Boundary">
<link rel="section" href="zend.mail.additional-headers.html" title="27.9. Additional Headers">
<link rel="section" href="zend.mail.character-sets.html" title="27.10. Character Sets">
<link rel="section" href="zend.mail.encoding.html" title="27.11. Encoding">
<link rel="section" href="zend.mail.smtp-authentication.html" title="27.12. SMTP Authentication">
<link rel="section" href="zend.mail.smtp-secure.html" title="27.13. Securing SMTP Transport">
<link rel="section" href="zend.mail.read.html" title="27.14. Reading Mail Messages">
</head>
<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
<div class="navheader"><table width="100%" summary="Navigation header">
<tr><th colspan="3" align="center">Chapter 27. Zend_Mail</th></tr>
<tr>
<td width="20%" align="left">
<a accesskey="p" href="zend.log.filters.html">Prev</a> </td>
<th width="60%" align="center"> </th>
<td width="20%" align="right"> <a accesskey="n" href="zend.mail.sending.html">Next</a>
</td>
</tr>
</table></div>
<div class="chapter" lang="en">
<div class="titlepage"><div><div><h2 class="title">
<a name="zend.mail"></a>Chapter 27. Zend_Mail</h2></div></div></div>
<div class="toc">
<p><b>Table of Contents</b></p>
<dl>
<dt><span class="sect1"><a href="zend.mail.html#zend.mail.introduction">27.1. Introduction</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="zend.mail.html#zend.mail.introduction.getting-started">27.1.1. Getting started</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.html#zend.mail.introduction.sendmail">27.1.2. Configuring the default sendmail transport</a></span></dt>
</dl></dd>
<dt><span class="sect1"><a href="zend.mail.sending.html">27.2. Sending via SMTP</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.multiple-emails.html">27.3. Sending Multiple Mails per SMTP Connection</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.different-transports.html">27.4. Using Different Transports</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.html-mails.html">27.5. HTML E-Mail</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.attachments.html">27.6. Attachments</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.adding-recipients.html">27.7. Adding Recipients</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.boundary.html">27.8. Controlling the MIME Boundary</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.additional-headers.html">27.9. Additional Headers</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.character-sets.html">27.10. Character Sets</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.encoding.html">27.11. Encoding</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.smtp-authentication.html">27.12. SMTP Authentication</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.smtp-secure.html">27.13. Securing SMTP Transport</a></span></dt>
<dt><span class="sect1"><a href="zend.mail.read.html">27.14. Reading Mail Messages</a></span></dt>
<dd><dl>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-example">27.14.1. Simple example using Pop3</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-open-local">27.14.2. Opening a local storage</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-open-remote">27.14.3. Opening a remote storage</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-fetching">27.14.4. Fetching messages and simple methods</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-message">27.14.5. Working with messages</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-flags">27.14.6. Checking for flags</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-folders">27.14.7. Using folders</a></span></dt>
<dt><span class="sect2"><a href="zend.mail.read.html#zend.mail.read-advanced">27.14.8. Advanced Use</a></span></dt>
<dd><dl>
<dt><span class="sect3"><a href="zend.mail.read.html#zend.mail.read-advanced.noop">27.14.8.1. Using NOOP</a></span></dt>
<dt><span class="sect3"><a href="zend.mail.read.html#zend.mail.read-advanced.caching">27.14.8.2. Caching instances</a></span></dt>
<dt><span class="sect3"><a href="zend.mail.read.html#zend.mail.read-advanced.extending">27.14.8.3. Extending Protocol Classes</a></span></dt>
<dt><span class="sect3"><a href="zend.mail.read.html#zend.mail.read-advanced.quota">27.14.8.4. Using Quota (since 1.5)</a></span></dt>
</dl></dd>
</dl></dd>
</dl>
</div>
<div class="sect1" lang="en">
<div class="titlepage"><div><div><h2 class="title" style="clear: both">
<a name="zend.mail.introduction"></a>27.1. Introduction</h2></div></div></div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.mail.introduction.getting-started"></a>27.1.1. Getting started</h3></div></div></div>
<p>
            <code class="code">Zend_Mail</code> provides generalized functionality to compose and send both text and MIME-compliant
            multipart e-mail messages. Mail can be sent with <code class="code">Zend_Mail</code> via the default <code class="code">Zend_Mail_Transport_Sendmail</code>
            transport or via <code class="code">Zend_Mail_Transport_Smtp</code>.
        </p>
<div class="example">
<a name="zend.mail.introduction.example-1"></a><p class="title"><b>Example 27.1. Simple E-Mail with Zend_Mail</b></p>
<div class="example-contents">
<p>
                A simple e-mail consists of some recipients, a subject, a body and a sender. To send such a mail using
                <code class="code">Zend_Mail_Transport_Sendmail</code>, do the following:
            </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Mail.php';
$mail = new Zend_Mail();
$mail-&gt;setBodyText('This is the text of the mail.');
$mail-&gt;setFrom('somebody@example.com', 'Some Sender');
$mail-&gt;addTo('somebody_else@example.com', 'Some Recipient');
$mail-&gt;setSubject('TestSubject');
$mail-&gt;send();
            </pre>
</div>
</div>
<br class="example-break"><div class="note"><table border="0" summary="Note: Minimum definitions">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td>
<th align="left">Minimum definitions</th>
</tr>
<tr><td align="left" valign="top"><p>
                In order to send an e-mail with <code class="code">Zend_Mail</code> you have to specify at least one recipient, a
                sender (e.g., with <code class="code">setFrom()</code>), and a message body (text and/or HTML).
            </p></td></tr>
</table></div>
<p>
            For most mail attributes there are "get" methods to read the information stored in the mail object. For
            further details, please refer to the API documentation. A special one is <code class="code">getRecipients()</code>.
            It returns an array with all recipient e-mail addresses that were added prior to the method call.
        </p>
<p>
            For security reasons, <code class="code">Zend_Mail</code> filters all header fields to prevent header injection with
            newline (<code class="code">\n</code>) characters.
        </p>
<p>
            You also can use most methods of the <code class="code">Zend_Mail</code> object with a convenient fluent interface. A fluent
            interface means that each method returns a reference to the object on which it was called, so you can
            immediately call another method.
        </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Mail.php';
$mail = new Zend_Mail();
$mail-&gt;setBodyText('This is the text of the mail.')
    -&gt;setFrom('somebody@example.com', 'Some Sender')
    -&gt;addTo('somebody_else@example.com', 'Some Recipient')
    -&gt;setSubject('TestSubject')
    -&gt;send();
        </pre>
</div>
<div class="sect2" lang="en">
<div class="titlepage"><div><div><h3 class="title">
<a name="zend.mail.introduction.sendmail"></a>27.1.2. Configuring the default sendmail transport</h3></div></div></div>
<p>
            The default transport for a <code class="code">Zend_Mail</code> instance is <code class="code">Zend_Mail_Transport_Sendmail</code>.
            It is essentially a wrapper to the PHP <a href="http://php.net/mail" target="_top"><code class="code">mail()</code></a> function. 
            If you wish to pass additional parameters to the <a href="http://php.net/mail" target="_top"><code class="code">mail()</code></a> function, 
            simply create a new transport instance and pass your parameters to the constructor. The new transport instance
            can then act as the default <code class="code">Zend_Mail</code> transport, or it can be passed to the <code class="code">send()</code>
            method of <code class="code">Zend_Mail</code>.
        </p>
<div class="example">
<a name="zend.mail.introduction.sendmail.example-1"></a><p class="title"><b>Example 27.2. Passing additional parameters to the Zend_Mail_Transport_Sendmail transport</b></p>
<div class="example-contents">
<p>
                This example shows how to change the Return-Path of the <a href="http://php.net/mail" target="_top"><code class="code">mail()</code></a>
                function.
            </p>
<pre class="programlisting">&lt;?php
require_once 'Zend/Mail.php';
require_once 'Zend/Mail/Transport/Sendmail.php';

$tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
Zend_Mail::setDefaultTransport($tr);

$mail = new Zend_Mail();
$mail-&gt;setBodyText('This is the text of the mail.');
$mail-&gt;setFrom('somebody@example.com', 'Some Sender');
$mail-&gt;addTo('somebody_else@example.com', 'Some Recipient');
$mail-&gt;setSubject('TestSubject');
$mail-&gt;send();
            </pre>
</div>
</div>
<br class="example-break"><div class="note"><table border="0" summary="Note: Safe mode restrictions">
<tr>
<td rowspan="2" align="center" valign="top" width="25"><img alt="[Note]" src="images/note.png"></td>
<th align="left">Safe mode restrictions</th>
</tr>
<tr><td align="left" valign="top"><p>
                The optional additional parameters will be cause the <a href="http://php.net/mail" target="_top"><code class="code">mail()</code></a> function to fail
                if PHP is running in safe mode.
            </p></td></tr>
</table></div>
</div>
</div>
</div>
<div class="navfooter"><table width="100%" summary="Navigation footer">
<tr>
<td width="40%" align="left">
<a accesskey="p" href="zend.log.filters.html">Prev</a> </td>
<td width="20%" align="center"> </td>
<td width="40%" align="right"> <a accesskey="n" href="zend.mail.sending.html">Next</a>
</td>
</tr>
<tr>
<td width="40%" align="left" valign="top">26.4. Filters </td>
<td width="20%" align="center"><a accesskey="h" href="index.html">Home</a></td>
<td width="40%" align="right" valign="top"> 27.2. Sending via SMTP</td>
</tr>
</table></div>
<div class="revinfo"></div>
</body>
</html>
